PWGen pour Windows

Générateur de mots de passe cryptographiquement forts


Autres langues : English | Deutsch

Contenu

NOTE IMPORTANTE: Il est FORTEMENT recommandé d'effacer REGULIEREMENT votre espace disque vide, surtout après avoir généré des mots de passe hautement sûrs. Eraser est une application d'effacement particulièrement efficace.

Comment puis-je changer la langue du programme? Vous devez changer la configuration.

Pourquoi utiliser PWGen?

L'être humain a tendance à choisir de mauvais mots de passe comme par exemple, des données personnelles (très mauvais), noms et personnages de livres/films/jeux, chaînes de caractères simples (telles que le fameux "qwerty" ou "azerty") et ainsi de suite. Si je peux vous donner un conseil: vous ne devriez JAMAIS choisir de tels mots de passe. Si vos données privées doivent être réellement secrètes, vous devriez choisir un mot de passe qui correspond au niveau de sécurité nécessaire. Même s'il devient de plus en plus difficile de mémoriser tous les mots de passe dont vous avez besoin--pensez seulement aux différentes applications Internet où vous avez le réflexe d'utiliser un mot de passe pratique. Je dois admettre qu'il n'est pas facile pour moi aussi de mémoriser tous ces mots de passe--si vous pouvez, vous avez de la chance. Si vous ne pouvez pas, ne vous en faites pas, il existe un programme appelé Password Safes qui peut vous aider à conserver tous vos mots de passe dans un endroit sûr. Il vous suffit juste de mémoriser un seul mot de passe "maître", qui devrait être par contre, très sûr. Vous ne savez pas comment construire un mot de passe sûr? Moi non plus, car il est très difficile pour un être humain d'y arriver; le mot de passe devrait être vraiment aléatoire, et les êtres humains ne sont pas très bons pour créer des chaînes de caractères aléatoires. D'accord, j'admets que goldeneye est plus facile à mémoriser que zio5FcV7J. Mais gardez à l'esprit que, dans le cas d'un "containeur" de mots de passe, il est vivement recommandé d'utiliser un mot de passe sûr; et un tel mot de passe, vous pouvez me croire, est beaucoup plus sûr que de simples mots ou phrases.

Cliquez ici pour un exemple d'article à propos des mots de passe choisis par les êtres humains.

Comment fonctionne PWGen

Le but de ce programme est de générer de bons mots de passe, où "bon" signifie "aléatoire". Il n'est pas facile de récupérer des données aléatoires sur un ordinateur. Les générateurs de nombres aléatoires habituels sont complètement inutilisables pour ce que l'on veut faire ici, car ils ne sont pas du tout cryptographiquement forts. Ils ne font que calculer des séquences aléatoires, et ils sont déterministes (comme toute opération informatique). Afin de récupérer des données appropriées qui sont censées être suffisamment aléatoires, PWGen mesure le temps entre la frappe des touches du clavier en utilisant un compteur haute performance (s'il existe). Les octets récupérés (y compris le texte entré dans le champ modifiable) sont transférés dans une collection aléatoire qui assure la plus haute densité d'information en mélangeant cryptographiquement le contenu. La sortie de cette collection aléatoire est convertie dans un format hexadécimal ou base64, et depuis la version 1.12, il peut aussi être transformé dans une passphrase, c'est à dire (c.a.d) une phrase constituée de mots français ou de combinaisons de caractères simples (consulter la page principale de Diceware pour en savoir plus sur les avantage de telles passphrases; vous pouvez aussi utiliser votre propre liste de mots, voir la section configuration).

PWGen a trois sources d'entropie: Le délai du clavier, les cliques de souris (les sources naturelles de l'utilisateur) et l'entropie système. Pour des raisons de sécurité, il est quelque peu naïf de croire que ces sources sont purement aléatoires. En fait, nous pouvons supposer qu'elles sont "biaisées" ou "tendent" vers 0 ou 1. C'est pourquoi j'ai introduit la "valeur BIPB" (= bits d'informations par bit dérivés de la source d'entropie) qui indique la valeur cryptographique de la source d'entropie. Par exemple, nous pouvons assumer "l'excentricité" e de la source. Si e est, disons, 0.2, la source est certainement biaisée à 70% (0.5 + 0.2) vers 0 ou 1. Dans le cas d'une source vraiment aléatoire, toutes les valeurs possibles (0 ou 1) se produisent avec une probabilité p = 0.5. Si l'excentricité est plus grande que 0, il y a moins d'information dans un bit fourni par la source. Les bits d'information peuvent être calculés selon la formule suivante:

bits_d'info = -p0 * lb(p0) - p1 * lb(p1)

où lb est le logarithme en base 2. En considérant e, p0 peut être représenté par 0.5 + e et p1 par 0.5 - e. D'après cette formule, il n'y a que bits_d'info * n bits d'information dans n bits de notre source "aléatoire". Vous pouvez aussi changer arbitrairement la valeur de BIPB si vous croyez que la source pourrait être pire que ce qui est indiqué par la valeur de e (voir la section Configuration).

Le compteur haute performance fournit approximativement 8 bits d'aléatoirité--c'est une valeur supposée par PGP 2.6.3 (voir random.c dans le code source de PGP). A mon avis, c'est une supposition assez généreuse, donc j'ai déterminé un BIPB de 0.5 (NOUVEAU depuis la version 1.30/1.40) pour la source naturelle (délais clavier) d'entropie. Ainsi, le programme utilise virtuellement seulement 8 * 0.5 = 4 bits de vraie aléatoirité depuis la source, au lieu de 8 bits (comme le fait PGP). Si vous affectez la valeur de 1.0, vous aurez une sécurité à la PGP (attention, ceci pourrait être moins sûr que la norme de PWGen!). Pour l'entropie système, j'ai choisi une valeur bits_d'info de 34 (anciennement 32) bits, ce qui est relativement bas. Après avoir récupéré assez de bits, PWGen demande une certaine quantité de données aléatoires de la part d'un générateur de nombre aléatoires sûr (GNPA; c.a.d. ANSI X9.17, basé sur l'implémentation de PGP) et convertit la séquence en un mot de passe qui correspond à la quantité réelle d'information des sources de bits composées.

Exemple: Vous voulez créer un mot de passe de 120 bits (très sûr). Nous avons 34 bits d'entropie système et avons encore besoin de 120 - 34 = 86 bits de notre première source; par contre, à cause du BIPB (0.6) nous avons besoin de 172 bits (nous assumons que 172 bits contiennent 88 bits de données aléatoires. Puisque nous obtenons 8 bits d'une seule frappe clavier, vous n'allez devoir taper que 22 fois [172 / 8].) En tout, nous avons maintenant un montant de 34 + 172 = 206 bits qui sont donnés au générateur de nombres pseudo-aléatoires (GNPA); qui convertit ces bits en un mot de passe de 120 bits.

NOUVEAU depuis la version 1.40 : Maintenant l'application récupère toujours de l'entropie depuis le clavier ET les cliques de souris. A chaque fois que vous tapez ou cliquez, de l'aléatoirité sera ajoutée à la collection. Appuyez sur F12 pour obtenir plus d'information à propos du nombre de bits vraiment aléatoires dans la collection aléatoire.

Comment utiliser PWGen

Bienvenue. C'est ici que vous trouvez des informations générales à propos du programme. Utiliser les boutons [Suivant] et [Précédent] pour naviguer à travers le processus.

Etape I. Il vous est demandé d'entrer la longueur du mot de passe dans le champ approprié. Cette valeur doit être comprise entre 32 et 2048 et devrait (même si ce n'est pas obligatoire!) être un multiple de 4, 6 ou 13 (à cause des trois types possibles d'encodage du mot de passe [hexadécimal, base64 ou passphrase]). Pour vous donner une idée, voici quelques informations à propos des longueurs de mots de passe: Pour une personne "normale", un mot de passe de 64-90 bits est satisfaisant. Les mots de passe de 128 bits sont très sûrs mais assez difficiles à mémoriser. Les mots de passe de 256 bits sont vraisemblablement impossibles à casser à tout jamais (?). Si vous choisissez l'option Génération rapide, PWGen va créer un mot de passe à partir de l'entropie système sans utiliser d'entropie additionnelle du clavier. Notez que cette option peut considérablement réduire le niveau de sécurité (la sécurité du mot de passe résultant est affichée à l'étape III).

Etape II. Maintenant le programme a besoin d'entropie, cad des données aléatoires. Le délai clavier, cad le temps entre la frappe des touches, est approprié pour ce but, puisqu'il est suffisamment aléatoire et peut être récupéré rapidement. Donc, entrez n'importe quel texte (par exemple la chaîne aléatoire affichée dans le champ au-dessus [recommandé!]) de votre façon habituelle et individuelle. (Ne tapez pas trop rapidement!) Tapez jusqu'à ce que vous receviez un signal audio. Ne frappez pas toujours sur la même touche; sinon, PWGen ne va pas accepter les évenements aléatoires et va afficher "ERRONE" dans le champ. (Si vous ne voulez pas que PWGen affiche une chaîne aléatoire que vous pouvez copier, vous devez changer la configuration du programme.) Si vous arrêtez le processus avant qu'il soit terminé, le niveau de sécurité va décroître.

NOUVEAU depuis la version 1.40 : Vous pouvez aussi cliquer avec votre souris pour ajouter de l'entropie à la collection.

Etape III. Félicitations, ceci est votre mot de passe personnel! Tel que mentionné précédemment, vous pouvez choisir entre trois types d'encodage: Hexadécimal (système à 4 bits, cad 24 = 16 caractères possibles, 0..9 et A..F), Base64 (système à 6 bits, cad 26 = 64 caractères possibles, A..Z, a..z, 0..9, +, /) et Passphrase (qui consiste en des mots de la liste Diceware 8k ou une autre liste que vous avez spécifié; la liste de mots contient 8 192 [213] entrées, c'est pourquoi nous avons besoin d'un système à 13 bits pour composer la passphrase). Ces deux dernière possibilités sont recommandées car les mots de passe résultants sont plus courts et/ou, respectivement, faciles à mémoriser que la version hexadécimale.

Voici un exemple de mot de passe (longueur souhaitée: 64 bits):

JRJ2bgAD44s (Base64; sécurité: 64 bits; longueur: 11 caractères / 1 mot)
2512766E0003E38B (Hexadécimal; sécurité: 64 bits; longueur: 16 caractères / 1 mot)
snatch a&p life jockey harpy (Passphrase; sécurité: 64 bits; longueur: 24 caractères / 5 mots)

Comme dans le premier cas chaque caractère a une entropie de 6 bits, la longueur du mot de passe doit être ajustée au prochain multiple de 6, cad 66 (11 * 6) dans ce cas. De la même façon, les mots de passe hexadécimaux doivent être allongés au prochain multiple de 4 si la longueur désirée n'est pas adéquate. La passphrase est longue de 5 mots, mais ne contient que 64 bits d'entropie. Puisque la longueur (en mots) de la passphrase doit aussi être ajustée au prochain multiple de 13 (dans ce cas, 65), il serait plus rapide d'utiliser cette valeur au lieu de 64. Notez que la sécurité du mot de passe n'est pas réciproque à la valeur ajustée. Si vous voulez créer un mot de passe de 64 bits et l'encoder en Base64 (11 caractères), il a toujours une sécurité de 64 bits et non de 66 (11 * 6) bits! C'est pourquoi je vous recommanderais d'ajuster la longueur de vos mots de passe pour votre méthode d'encodage préférée (Base64 ou passphrase, je suppose?).

Depuis la version 1.15, il existe une nouvelle fonction appelée Prochain mot de passe qui vous permet de créer de nouveaux mots de passe ou passphrases (dérivés du GNPA. Vous ne perdrez rien de l'entropie dans le mot de passe. Notez, par ailleurs, que la sûreté du mot de passe peut réduire à cause d'une perte d'entropie dans la collection. Par contre, vous pouvez toujours ajouter de l'entropie en tapant ou en cliquant.

Si vous voulez copier votre mot de passe généré dans le presse-papier, cliquez sur Copier (représenté par une petite icône); notez que le presse-papier sera définitivement vidé à la sortie du programme! Il vous est aussi possible de sauvegarder votre mot de passe en tant que fichier binaire. Pour ce faire, utilisez le bouton Enregistrer sous... (ici aussi représenté par une icône) pour créer le fichier de votre choix, où la longueur du mot de passe est ajustée à un multiple de 8 bits. Vous pouvez utiliser le fichier ainsi créé en tant que "clé fichier/disque" pour vos programme de chiffrement favoris ou pour autre chose.

PWGen offre aussi la possibilité de formater vos mots de passe en tant "qu'entrées" dans un fichier qui peut servir de véritable voûte à mots de passe. Sélectionnez Ajouter au fichier... (Ctrl+F) dans le menu contextuel du champ mot de passe et entrez le titre/nom de cette entrée; ce qui ressemble à ceci (exemple):

Sourceforge.net
>>> MOT DE PASSE: yf sap jon 49th for haze beryl austin sachs 5
Longueur: 36 caractères / 10 mot(s)
Sécurité: 32 bits (max. 128 bits)

Bien sûr, il est fortement recommandé de chiffrer ce fichier avec un mot de passe suffisamment sûr (... généré avec PWGen). L'un des meilleurs utilitaires pour ça est Blowfish Advanced CS.

Maintenant, il ne manque que les explications du menu Divers:

Une fonction intéressante de PWGen est sa capacité à s'exécuter dans le plateau système. A chaque fois que vous minimisez la fenêtre de PWGen, il va disparaître et sera affiché comme icône dans le plateau système, à côté de l'horloge système. En effectuant un clique-droit sur l'icône, un menu va apparaître pour vous offrir des options intéressantes. Vous pouvez aussi désactiver cette fonction en modifiant la configuration.

Configuration

Depuis la version 1.10, il vous est possible de changer plusieurs paramètres de PWGen, par exemple, quelle liste de mots utiliser, quel type de chaînes aléatoires l'application doit afficher à l'étape II ou si vous voulez que le programme soit minimisé en tant qu'icône.

Appuyez sur F3 pour afficher les options de configurations:

Rech. recharge les paramètres depuis le fichier .ini, Déf. remet les valeurs de configuration par défaut. Rappelez-vous que le programme devra être redémarré pour que les changements soient pris en compte! En cliquant sur le symbole de la "clé", vous pouvez changer le niveau de sécurité du programme (bas, normal ou haut / paranoïa -- notez que même bas est suffisamment sûr); sélectionner l'une de ces options n'affecte que les paramètres de sécurité concernés de PWGen (ex. BIPB de la source naturelle d'entropie).

Consultez le fichier config.ini (F1) pour avoir une description plus détaillée (en anglais) des paramètres du programme. Bien sûr, vous pouvez aussi modifier ce fichier directement.

Si vous voulez que PWGen charge une liste de mots au démarrage, veuillez noter que cette liste doit obéir aux critères spécifiés dans le fichier config.ini. Par exemple, vous pouvez utiliser la liste de mots wordlist_beale.txt, ou n'importe quelle autre liste du site Web Diceware, ou wordlist_de.txt, une liste de mots allemands créée par Benjamin Tenne.

Trucs

Voici quelques trucs concernant l'utilisation de PWGen:

Taille des mots de passe: Pour une utilisation privée les mots de passe de 64 ou mieux, 72 bits devraient suffir. Si vous pouvez décoder le chiffrement DES (clé de 56 bits) en un jour (en moyenne), vous mettriez environ 256 jours pour décoder une clé de 64 bits, 179,6 années pour une clé de 72 bits, 11 491,2 années pour une clé de 78 bits,  ... 47 068 134,8 années pour une clé de 90 bits et 1,3 * 1019 années pour une clé de 128 bits. Voici un tableau qui contient quelques exemples de calculs:

Temps pour décoder ... (en comparaison à DES)
clés 56 bits (DES) clés 64 bits clés 72 bits clés 78 bits clés 90 bits clés 128 bits
1 j 256 j 179,6 a 11 491,2 a 47 068 134,8 a 1,3 * 1019 y
1 h 10,7 j 7,5 a 478,8 a 1 961 172,3 a 5,4 * 1017 a
1 s 4,3 min 18,2 h 48,5 j 544,8 a 1,5 * 1014 a
1 ms 0,3 s 1,1 min 1,2 h 198,8 j 1,5 * 1011 a

(Comment lire ce tableau: Si DES peut être décodé en 1 jour, cela prendrait 256 jours pour décoder une clé de 64 bits et ainsi de suite ...)

Notez que tous ces calculs sont très réalistes. Aujourd'hui, il est possible de décoder DES en 1 jour, voire 1 heure. Pour décoder une clé de 56 bits en 1 seconde, un attaquant aurait besoin, par exemple, de 72 058 ordinateurs capables de vérifier 1012 clés en une seconde. Une attaque qui décode DES en 1 milliseconde aurait besoin de 72 057 594 de ces ordinateurs.

Gardez en tête qu'il existe des milliers de façons pour un attaquant de récupérer votre mot de passe, que ce soit en vous espionnant ou avec du Pentothal® (un sérum de vérité). Et lorsque votre mot de passe est enfin compromis (c.a.d. trouvé par quelqu'un d'autre), vous n'avez rien accompli avec une longueur de mot de passe importante. C'est pourquoi il est très important de bien manipuler ses mots de passe!

Manipulation de mots de passe: Une chose que vous ne devez jamais faire est d'écrire votre mot de passe. Vous pouvez l'écrire de façon temporaire pour mieux le mémoriser, mais après, vous devriez détruire le matériel utilisé pour le stocker. Sinon, des personnes mal intentionnées pourraient trouver l'endroit où vous l'avez écrit (et c'est beaucoup plus facile que de deviner un mot de passe), et le système de sécurité au complet est invalidé. Si vous avez de la difficulté à mémoriser tous vos mots de passe, utilisez un coffre à mots de passe (voir ci-dessous). Et avant que je l'oublie, ne donnez jamais votre mot de passe à quiconque, même à un membre de la famille ou à votre meilleur ami. Sinon, le mot de passe est inutile.

Mémorisation de mots de passe: Ceci est, en fait, un grand problème pour la majorité des utilisateurs, et pour moi aussi. Mais il existe quelques trucs pour nous faciliter ce processus, alors n'abandonnez pas trop vite. Par exemple, vous venez de créer un mot de passe de 72 bits (base64) P8ru6sCVk0Zf. Vous pouvez simplement le diviser en "unités" de 2 à 4 caractères; par exemple P8r-u6s-CVk-0Zf. Alors, vous pouvez essayer de l'apprendre par coeur; vous pouvez l'écrire quelque part pour une courte (!) durée, et lorsque vous arrivez à le mémoriser entièrement, vous devriez en détruire toute trace (en brûlant la feuille de papier ou en balayant le fichier qui contenait le mot de passe, ...). Il peut aussi être utile d'inventer une petite histoire à partir des lettres du mot de passe. Exemple avec le mot de passe utilisé ci-dessus: "Pierre (8 ans) récita en utilisant 6 sujets ..." et ainsi de suite. Faites attention aux lettres majuscules et minuscules! Pour ce qui est des trucs pour mémoriser vos mots de passe, votre imagination n'a pas de limite. Alors, essayez de nouvelles possibilités--pour autant que vous ne changez pas le mot de passe en lui même, c'est OK.

Regardez-moi--Vous aurez du mal à y croire, mais j'ai pu mémoriser un mot de passe de 90 bits! Oui, CA MARCHE!

Coffres à mots de passe: Tel que mentionné ci-dessus, je vous recommande d'utiliser un coffre à mots de passe; c'est un programme qui chiffre vos mots de passe avec un mot de passe appelé "maître". Vous pouvez trouver un bon programme gratuit sur SourceForge. Pour un niveau de sécurité normal, vous devriez utiliser un mot de passe de 64 à 90 bits que vous pouvez mémoriser avec un peu d'effort.

Effacement définitif de l'espace disque libre: De par la conception de Windows, il est possible qu'un mot de passe ou une partie de celui-ce reste sur le disque même après l'avoir supprimé. Si un adversaire peut accéder à votre ordinateur, il pourrait chercher le disque pour des anciens bouts de mots de passe que vous auriez entré à un moment donné. Ceci est très dangereux. Sur ces bases, je vous conseille d'utiliser un programme de sécurité qui peut effacer définitivement l'espace libre de votre disque, où des données sensibles pourraient encore être stockées. Quelques excellents programmes pour cette tâche sont Eraser et Blowfish Advanced CS.

Code source

Le code source de PWGen est disponible publiquement. Il peut être récupéré depuis la page principale du projet (voir ci-dessous pour plus d'informations).

Contact

PWGen Copyright © 2002-04 par Christian Thöing. Ce programme est un logiciel gratuit; il est distribué selon les termes et conditions du GNU General Public License. Vous pouvez en trouver une copie dans le fichier license.txt. Merci de me contacter si vous trouvez des erreurs ou si vous avez simplement une question.

Page principale du projet: http://pwgen-win.sourceforge.net; pour récupérer le logiciel, visitez la page http://sourceforge.net/projects/pwgen-win/. Ma page personnelle (en allemand) peut être vue à http://cryptolounge.de.vu.

Si vous désirez et êtes capable de traduire ce document dans une autre langue, merci de me le faire savoir et/ou envoyez-moi le fichier HTML traduit.

Oh ... et j'ai oublié de mentionner: Il y a un oeuf de Pâques caché dans le programme. Pouvez-vous le trouver? (Vous pouvez regarder le code source! :-)) C'est un poême par le poête autrichien Georg Trakl (1887-1914).



Notes : Certains termes utilisés dans ce texte sont difficilement traduisibles de l'anglais. Ces termes peuvent sembler bizarres et ne pas exister dans le dictionnaire mais le traducteur français a cru bon les traduire de la sorte. Si vous avez de meilleures suggestions, merci de les envoyer à l'auteur du programme.